<?php

/**
 * UserIdentity represents the data needed to identity a user.
 * It contains the authentication method that checks if the provided
 * data can identity the user.
 */
class UserIdentity extends CUserIdentity
{
	private  $_id;
	public function authenticate()
	{
		$user = Users::model()->findByAttributes(array('username'=>$this->username));
		if ($user === null) {
			$this->errorCode = self::ERROR_USERNAME_INVALID;
			Yii::app()->user->setFlash('error', "Username or password is incorrect.");
		} else {
			if ($user->password !== $user->encrypt($this->password)){
				Yii::app()->user->setFlash('error', "Username or password is incorrect.");
				$this->errorCode = self::ERROR_PASSWORD_INVALID;
			}
			else {
				$this->_id = $user->id;		
				if (null === $user->lastvisitDate)
					$lastLogin = time();
				else
					$lastLogin = strtotime($user->lastvisitDate);
				$this->setState('lastvisitDate', $lastLogin);
				$this->errorCode = self::ERROR_NONE;
			}
		}
		return $this->errorCode;
	}
	public function getId() {
		return $this->_id;
	}
}